<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // static
      // 作用： 将静态属性或者方法，写在类里面
      // 实例成员： 写在 类 里面的属性和方法，需要通过 实例对象 调用
      // 静态成员： 写在 类 的属性上，        必须通过 类.xxx 调用
      class Person {
        // 实例属性
        age = 20;
        // 实例方法
        sayHello() {
          console.log('Person中的sayHello -----> ');
        }

        // 通过 static 写的属性、方法，都是静态成员，可以理解为是 Person.sayHi 语法糖
        static xxx = 'zs';
        static sayHi() {
          console.log('sayHi,通过类来调用 -----> ');
        }
      }
      //   静态方法
      //   Person.sayHi = function () {
      //     console.log('sayHi,通过类来调用 -----> ');
      //   };
      //   静态属性
      //   Person.xxx = '123';

      const zs = new Person();
      //   zs是 Person 的实例对象
      //   zs.sayHello();
      //   console.log('zs -----> ', zs.age);
      console.log('Person.xxx -----> ', Person.xxx);
      Person.sayHi();
    </script>
  </body>
</html>
